Qt 中修改 QComboBox 列表中的滚动箭头 - sbw Blog

Qt 中修改 QComboBox 列表中的滚动箭头

来源: 石博文博客 | 浏览: 6898 | 评论: 0 发表时间: 2016-01-11

QComboBox 的弹出列表如果非常长的话,会在上下两端加一个箭头来表示还有内容,但是因为没有对应的 ObjectName 这两个箭头的风格很不好调整,需要根据它的 ClassName 获取到对象之后,采用事件监听的方式捕获它的绘图方法。以 QComboBox 为例,可以采用这种方式去画Qt控件中所有的子面板,子对象,方便个性化修改样式。



效果图

标准样式 自绘样式

方法

主要思想是先要得到子面板的类名,这个我是从Qt的源代码中找到的,QComboBox上下箭头的类名是QComboBoxPrivateScroller,得到类名之后,使用findChildren方法找出所有子对象,然后通过Qt自己的“反射”机制metaObject来对比类名,就可以找到对象了。


核心示例代码



没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml